

function columnsForEach (columns,field,renderContent) {
  try{
    columns.forEach((item)=>{
      if(item.dataIndex === field){
        item.customRender = renderContent

       // console.log(item)
        throw '结束循环'//在这里抛出异常
      }
      if(item.children){
        columnsForEach(item.children,field,renderContent)
      }
    })
  } catch (e) {
   // console.log(e)
  }
}


/**
 *处理表格行合并
 * 参数：data表格数据
 * 参数：field 合并的字段
 * 参数：columns 表格原来的列
 * newColumns 引入 this.columns
 * 返回 data表格数据 columns 表格列
 *
 */
export function dealTable(data,field,columns){
  let rowSpanArr = [];
  let index1=0;
  for(let i=0;i<data.length;i++){
    if(i===0){
      rowSpanArr.push(1);
      index1=i;
    }else{
      if(data[i][field]===data[i-1][field]){
        rowSpanArr[index1]+=1;
        rowSpanArr.push(0);
      }else{
        rowSpanArr.push(1);
        index1=i;
      }
    }
  }
  //console.log(rowSpanArr)

  const renderContent = (value, row, index) => {
    const obj = {
      children: value,
      attrs: {},
    };
    obj.attrs.rowSpan = rowSpanArr[index];
    return obj;
  };


  columnsForEach (columns,field,renderContent)

  // try{
  //   columns.forEach((item)=>{
  //     if(item.dataIndex === field){
  //       item.customRender = renderContent
  //
  //       console.log(item)
  //       throw '结束循环'//在这里抛出异常
  //     }
  //   })
  // } catch (e) {
  //   console.log(e)
  // }

 // console.log(columns)
  return {
    columns,
    data
  }


}


/**
 *判断是否是一个数字
 *
 */
export function isNotANumber(inputData) {
  //isNaN(inputData)不能判断空串或一个空格
  //如果是一个空串或是一个空格，而isNaN是做为数字0进行处理的，而parseInt与parseFloat是返回一个错误消息，这个isNaN检查不严密而导致的。
  if (parseFloat(inputData).toString() == "NaN") {
    //alert(“请输入数字……”);
    return false;
  } else {
    return true;
  }
}

/**
 *判断是否有长度不为零的children
 *
 */
 function filterRowChildren(tableData) {
  return  tableData.map(
    function(item){
      let newItem = {}
      if(item.children){
        if(item.children.length > 0){
          newItem = Object.assign({}, item)
          newItem.children = filterRowChildren(item.children)
        }else{
          newItem = Object.assign({}, item)
          delete newItem.children
        }
      }else {
        newItem = Object.assign({}, item)
      }
      return newItem
    }
  )

}

export default {
  dealTable,
  isNotANumber,
  filterRowChildren
}



